#include <iostream>
using namespace std;

int main()
{
    int* pa = nullptr;
    return 0;
}


// void test(int x)
// {
//     cout << "void test(int)" << endl;
// }

// void test(int* x)
// {
//     cout << "void test(int*)" << endl;
// }

// int main()
// {
//     test(NULL);
//     return 0;
// }

// void test(int arr[])
// {
//     for(auto e:arr)//错误代码演示，如果函数的参数是数组，我们就不能使用范围for
//     {
//         cout << e << endl;
//     }
// }

// int main()
// {
//     int arr1[] = {1,2,3,4,5,6,7,8,9,10};    
//     for(auto& e:arr1)
//     {
//         cout << e << " ";
//     }
//     cout << endl;
//     return 0;
// }

// int main()
// {
//     int arr1[] = {1,2,3,4,5,6,7,8,9,10};
//     for(int& e:arr1)
//     {
//         e++;
//     }

//     for(int& e:arr1)
//     {
//         cout << e << " ";
//     }
//     cout << endl;
//     return 0;
// }

// #include <stdio.h>
// int main()
// {
//     int arr[] = {1,2,3,4,5,6,7,8,9,10};
//     for(int i = 0; i < sizeof(arr)/sizeof(arr[0]); i++)
//     {
//         printf("%d ",arr[i]);
//     }
//     return 0;
// }



// int main()
// {
//     int arr1[] = {1,2,3};
//     auto arr2[] = {1,2,3};//错误代码，auto不能用来声明数组
//     return 0;
// }



// void func(auto x)
// {
//     cout << x << endl;
// }

// int main()
// {
//     func(5);
//     return 0;
// }

// int main()
// {
//     auto x;//错误代码，auto必须得初始化
//     return 0;
// }

// #include <iostream>
// #include <vector>
// using namespace std;

// int main()
// {
//     vector<int> v;
//     vector<int>::iterator it1 = v.begin();//使用迭代器来访问顺序表
//     auto it2 = v.begin();
//     return 0;
// }

// int main()
// {
//     int a = 10;
//     auto b = &a;
//     auto& c = a;
//     cout << typeid(a).name() << endl;
//     cout << typeid(b).name() << endl;
//     cout << typeid(c).name() << endl;
//     return 0;
// }

// int main()
// {
//     int a = 10;
//     char b = 'w';
//     auto c = a;
//     auto d = 3.14;
//     auto e = &b;
//     auto* f = &a;
//     cout << typeid(a).name() << endl;
//     cout << typeid(b).name() << endl;
//     cout << typeid(c).name() << endl;//推导出来的结果为int
//     cout << typeid(d).name() << endl;//推导出来的结果为double
//     cout << typeid(e).name() << endl;//推导出来的结果为char*
//     cout << typeid(f).name() << endl;//推导出来的结果为int*
//     return 0;
// }

// inline int Add(int x,int y)
// {
//     return x + y;
// }

// int main()
// {
//     cout << Add(1,3) << endl;
// }

// #define ADD(x,y) ((x) + (y))

// int main()
// {
//     cout << ADD(1,3) << endl;

//     return 0;
// }

